-- 参数说明：
-- KEYS[1] = 库存键名（bigMarket:strategyAwardStock:100001）
-- ARGV[1] = 奖品ID（字符串类型，如"1"）
-- 返回：[错误码, 剩余库存, 消息]

local stock_key = KEYS[1]  -- 从KEYS获取库存键（Redis最佳实践）
local award_id = ARGV[1]  -- 从ARGV获取字符串类型的奖品ID

-- 1. 检查库存是否存在（使用字符串类型的字段名）
local current_stock = redis.call('HGET', stock_key, award_id)
if not current_stock then
    return {1, 0}
end

-- 2. 转换库存为数字
local num_stock = tonumber(current_stock)
if not num_stock then
    return {2, 0}
end

-- 3. 检查库存是否充足
if num_stock <= 0 then
    return {3, num_stock}
end

-- 4. 扣减库存（减1）
local new_stock = num_stock - 1
redis.call('HSET', stock_key, award_id, new_stock)

-- 5. 返回扣减结果
return {0, new_stock}
